package com.itheima.dubbo.interfaces;

import com.itheima.commons.model.mongo.FollowUser;
import com.itheima.commons.model.mongo.Video;

import java.util.List;

/**
 * 小视频表 接口
 */
public interface VideoApi {

    /**
     * 保存小视频
     *
     * @param video
     * @return 保存成功后，返回视频id
     */
    String saveVideo(Video video);


    /**
     * 根据id查询视频对象
     *
     * @param videoId 小视频id
     * @return
     */
    Video queryVideoById(String videoId);

    /**
     * 关注用户
     *
     * @return
     */
    void followUser(FollowUser followUser);

    /**
     * 取消关注用户
     *
     * @param userId       当前用户
     * @param followUserId 关注的目标用户
     * @return
     */
    void disFollowUser(Long userId, Long followUserId);

    /**
     * 随机抽取生成小视频列表
     *
     * @param pageSize
     * @return
     */
    List<Video> randomVideos(Integer pageSize);

    /**
     * 根据VID查询小视频列表
     *
     * @param toList
     * @return
     */
    List<Video> findVideosByVids(List<Long> toList);

    /**
     * 根据用户的id查询该用户相关视频信息
     * @param uid
     * @return
     */
    List<Video> queryVideoListByUid(Integer uid);
}